無論您的公司有多大或做什么,在為所有應(yīng)用程序選擇 Web 服務(wù)時,安全性都是首要考慮因素。這是一篇系列文章中的第一篇,介紹了在實(shí)施 Web 服務(wù)時確定安全級別和要求的 10 個最重要的因素。
安全要求:在深入探討決定安全要求的 10 個最關(guān)鍵因素之前,讓我們簡要討論一下 Web 服務(wù)安全要求。關(guān)鍵的 Web 服務(wù)安全要求是身份驗(yàn)證、授權(quán)、數(shù)據(jù)保護(hù)和不可否認(rèn)性。
身份:驗(yàn)證 身份 驗(yàn)證確保使用 Web 服務(wù)所涉及的每個實(shí)體——請求者、提供者和代理(如果有的話)——都是它實(shí)際聲稱的。身份驗(yàn)證涉及接受來自實(shí)體的憑據(jù)并根據(jù)授權(quán)對其進(jìn)行驗(yàn)證。
授權(quán):授權(quán)確定服務(wù)提供者是否已將 Web 服務(wù)的訪問權(quán)限授予請求者。基本上,授權(quán)確認(rèn)服務(wù)請求者的憑據(jù)。它確定服務(wù)請求者是否有權(quán)執(zhí)行操作,范圍可以從調(diào)用 Web 服務(wù)到執(zhí)行其功能的某個部分。
數(shù)據(jù)保護(hù):數(shù)據(jù)保護(hù)確保 Web 服務(wù)請求和響應(yīng)在途中未被篡改。它需要保護(hù)數(shù)據(jù)完整性和隱私。值得一提的是,數(shù)據(jù)保護(hù)并不能保證消息發(fā)送者的身份。
現(xiàn)在我們已經(jīng)了解了 Web 服務(wù)安全的構(gòu)成要素,我們將研究影響 Web 服務(wù)實(shí)現(xiàn)的十大安全因素。
前 10 項(xiàng)決定因素
決定使用 Web 服務(wù)的安全要求的前 10 項(xiàng)基本因素如下:
1.Web 服務(wù)是用于 EAI 還是 B2Bi?
Web 服務(wù)可用于兩個不同的領(lǐng)域——企業(yè)應(yīng)用程序集成 (EAI) 和企業(yè)對企業(yè)集成 (B2Bi)。EAI 域的安全要求是 B2Bi 的一個子集,因?yàn)樵?Intranet 中控制、管理、查找、執(zhí)行和維護(hù) Web 服務(wù)比在 Internet 上跨越公司防火墻使用它們要容易得多。雖然 EAI 的 Web 服務(wù)應(yīng)該有一個級別的身份驗(yàn)證并且很少使用加密,但 B2Bi 的 Web 服務(wù)可能涉及多個級別的身份驗(yàn)證并且應(yīng)該始終使用加密。此外,在 B2Bi 域的情況下,與 Web 服務(wù)請求和響應(yīng)對應(yīng)的消息可能需要使用以下一種或多種加密:、數(shù)字簽名和安全套接字層 (SSL)。但是,對于在企業(yè)網(wǎng)絡(luò)中用于 EAI 項(xiàng)目的 Web 服務(wù),應(yīng)盡可能避免使用 SSL。最后,不可否認(rèn)性對于 B2Bi 域中的 Web 服務(wù)很有用,因?yàn)樗梢苑乐箰阂獍l(fā)件人后來否認(rèn)已創(chuàng)建并發(fā)送了特定消息。
2.Web 服務(wù)的目的是什么?
如果 Web 服務(wù)只公開面向公共信息的業(yè)務(wù)流程或數(shù)據(jù),例如今天城市的天氣或公司的股票報價,則安全要求比公開私人業(yè)務(wù)信息的 Web 服務(wù)要寬松。
3.誰是 Web 服務(wù)的訂戶?
了解 Web 服務(wù)的訂閱者是誰對于確定 Web 服務(wù)的授權(quán)和身份驗(yàn)證特性很重要。
4.是否可以通過 Internet 調(diào)用該服務(wù)?
Web 服務(wù)是否僅限于受信任的貿(mào)易伙伴,或者任何公司都可以通過 Internet 調(diào)用 Web 服務(wù)?除了數(shù)據(jù)保護(hù)和不可否認(rèn)特性之外,這對于 Web 服務(wù)的授權(quán)和身份驗(yàn)證特性至關(guān)重要。
5.底層應(yīng)用程序的安全性如何?
Web 服務(wù)為底層應(yīng)用程序提供什么級別的訪問?訪問是否應(yīng)該基于授權(quán)和權(quán)利?對底層應(yīng)用的訪問越多,對授權(quán)和認(rèn)證安全的要求就越高。
6.Web 服務(wù)是面向事務(wù)的嗎?
如果事務(wù)分布在多個實(shí)體中,安全威脅會更高。
7.使用什么協(xié)議?
什么網(wǎng)絡(luò)協(xié)議處理服務(wù)請求者和提供者之間的身份驗(yàn)證和數(shù)據(jù)傳輸?了解是否需要數(shù)據(jù)安全非常重要,因?yàn)槿魏稳硕伎梢孕崽?Web 服務(wù)請求和響應(yīng),這些請求和響應(yīng)將作為純 XML 文檔在網(wǎng)絡(luò)上傳輸。如果是 HTTPS,則不需要任何額外的加密/解密算法,因?yàn)?HTTPS 提供了它。
8.是否需要驗(yàn)證發(fā)件人/收件人?
是否需要保證 Web 服務(wù)請求和響應(yīng)消息的發(fā)送者與消息的創(chuàng)建者相同?出于審計目的并確保發(fā)送者和創(chuàng)建者是同一實(shí)體可能需要此信息。如果 Web 服務(wù)用于 B2Bi,則通常需要不可否認(rèn)的安全要求。
9.誰參與服務(wù)?
Web 服務(wù)的使用涉及多少不同的實(shí)體;即,Web 服務(wù)是否具有實(shí)體鏈接功能?如果有多個實(shí)體,則需要更高的安全功能。
10.是否使用了組件鏈?
Web 服務(wù)的實(shí)現(xiàn)代碼中是否存在應(yīng)用程序鏈接和組件鏈接功能?如果應(yīng)用程序鏈跨越公司防火墻,安全要求就會變得更加嚴(yán)格。
值得一提的是,現(xiàn)階段Web服務(wù)的安全技術(shù)標(biāo)準(zhǔn),如行業(yè)標(biāo)準(zhǔn)和Web服務(wù)中使用數(shù)字簽名的支持等,仍在定義和制定中。因此,請繼續(xù)關(guān)注本系列后續(xù)文章的最新動態(tài)。
在實(shí)施 Web 服務(wù)之前覆蓋您的所有基礎(chǔ)
從長遠(yuǎn)來看,安全的互操作性是 Web 服務(wù)成功的關(guān)鍵。警惕 Web 服務(wù)中潛在的安全漏洞,因?yàn)樗鼈內(nèi)菀资艿礁鞣N安全威脅的攻擊,例如拒絕服務(wù)和欺騙。在上述問題得到明確回答并考慮到公司內(nèi)部的安全策略和現(xiàn)有解決方案之前,不應(yīng)開始實(shí)施任何 Web 服務(wù)技術(shù)。